#pragma once
#include <QObject>
#include <QSqlDataBase>
#include <QSqlQuery>
#include <QSqlRecord>
#include <QReadWriteLock>


class DataBasePrivate
{
public:
	DataBasePrivate();
	~DataBasePrivate();

	bool InitDB(const QString& path);
	/*获取表内数据数量*/
	int GetTabDataSize(const QString& tablename);
	/*插入数据*/
	bool InsertDataByID(const QString& tablename, int id, QStringList& key, QStringList& val);
	/*删除表内所有数据*/
	bool DeleteAllData(const QString& tablename);
	/*根据序号删除某条数据*/
	bool DeleteDataByID(const QString& tablename, int id);
	/*更新某条数据*/
	bool UpdataDataByID(const QString& tablename, int id, QStringList& key, QStringList& val);
	/*判断表内是否存在该条数据*/
	bool IfTableHasId(const QString& tablename, int id);

	/*判断表是否存在*/
	bool IfTableExist(const QString& tablename);

	/*创建表*/
	bool CreatTable(const QString& tablename, QStringList& key, QStringList& type);
	/*读取表内某条数据, id <= 0 读取所有数据*/
	QStringList ReadDataByID(const QString& tablename, int id, const QString& key);

private:
	bool m_Inited = false;
	QReadWriteLock rw_lock;
	QSqlDatabase m_db;
};
